home *** CD-ROM | disk | FTP | other *** search
- unit NameSpcU;
-
- {$ifdef Ver90} //Delphi 2
- {$define Delphi2}
- {$endif}
- {$ifdef Ver93} //BCB1
- {$define Delphi2}
- {$endif}
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, ComCtrls;
-
- type
- TForm1 = class(TForm)
- btnInternetCache: TButton;
- lstFolderContents: TListBox;
- btnRecycledBin: TButton;
- lstSpecialFolder: TListBox;
- procedure FormCreate(Sender: TObject);
- procedure btnInternetCacheClick(Sender: TObject);
- procedure btnRecycledBinClick(Sender: TObject);
- procedure lstSpecialFolderClick(Sender: TObject);
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- uses
- {$ifdef Delphi2}
- OleAuto, Ole2,
- {$else}
- ComObj,
- {$endif}
- NameHlpU, ShlObj;
-
- {$R *.DFM}
-
- type
- TFolder = record
- Name: String;
- ID: Cardinal;
- end;
- const
- Folders: array[0..29] of TFolder = (
- (Name: 'CSIDL_DESKTOP'; ID: $0000),
- (Name: 'CSIDL_INTERNET'; ID: $0001),
- (Name: 'CSIDL_PROGRAMS'; ID: $0002),
- (Name: 'CSIDL_CONTROLS'; ID: $0003),
- (Name: 'CSIDL_PRINTERS'; ID: $0004),
- (Name: 'CSIDL_PERSONAL'; ID: $0005),
- (Name: 'CSIDL_FAVORITES'; ID: $0006),
- (Name: 'CSIDL_STARTUP'; ID: $0007),
- (Name: 'CSIDL_RECENT'; ID: $0008),
- (Name: 'CSIDL_SENDTO'; ID: $0009),
- (Name: 'CSIDL_BITBUCKET'; ID: $000a),
- (Name: 'CSIDL_STARTMENU'; ID: $000b),
- (Name: 'CSIDL_DESKTOPDIRECTORY'; ID: $0010),
- (Name: 'CSIDL_DRIVES'; ID: $0011),
- (Name: 'CSIDL_NETWORK'; ID: $0012),
- (Name: 'CSIDL_NETHOOD'; ID: $0013),
- (Name: 'CSIDL_FONTS'; ID: $0014),
- (Name: 'CSIDL_TEMPLATES'; ID: $0015),
- (Name: 'CSIDL_COMMON_STARTMENU'; ID: $0016),
- (Name: 'CSIDL_COMMON_PROGRAMS'; ID: $0017),
- (Name: 'CSIDL_COMMON_STARTUP'; ID: $0018),
- (Name: 'CSIDL_COMMON_DESKTOPDIRECTORY'; ID: $0019),
- (Name: 'CSIDL_APPDATA'; ID: $001a),
- (Name: 'CSIDL_PRINTHOOD'; ID: $001b),
- (Name: 'CSIDL_ALTSTARTUP'; ID: $001d),
- (Name: 'CSIDL_COMMON_ALTSTARTUP'; ID: $001e),
- (Name: 'CSIDL_COMMON_FAVORITES'; ID: $001f),
- (Name: 'CSIDL_INTERNET_CACHE'; ID: $0020),
- (Name: 'CSIDL_COOKIES'; ID: $0021),
- (Name: 'CSIDL_HISTORY'; ID: $0022));
-
- procedure TForm1.FormCreate(Sender: TObject);
- var
- Loop: Cardinal;
- begin
- for Loop := Low(Folders) to High(Folders) do
- lstSpecialFolder.Items.AddObject(
- Folders[Loop].Name, TObject(Folders[Loop].ID))
- end;
-
- const
- {$ifdef Delphi2}
- IID_InternetExplorerCache: TGUID = (
- D1:$7BD29E00;D2:$76C1;D3:$11CF;D4:($9D,$D0,$00,$A0,$C9,$03,$49,$33));
- IID_RecycleBin: TGUID = (
- D1:$645FF040;D2:$5081;D3:$101B;D4:($9F,$08,$00,$AA,$00,$2F,$95,$4E));
- {$else}
- IID_InternetExplorerCache: TGUID = '{7BD29E00-76C1-11CF-9DD0-00A0C9034933}';
- IID_RecycleBin: TGUID = '{645FF040-5081-101B-9F08-00AA002F954E}';
- {$endif}
-
- procedure TForm1.btnInternetCacheClick(Sender: TObject);
- begin
- GetFolderItems(
- CreateFolderObject(
- GetSpecialFolderClsID('Cache')), lstFolderContents.Items)
- end;
-
- procedure TForm1.btnRecycledBinClick(Sender: TObject);
- begin
- GetFolderItems(
- CreateFolderObject(IID_RecycleBin), lstFolderContents.Items)
- end;
-
- procedure TForm1.lstSpecialFolderClick(Sender: TObject);
- begin
- Caption := GetSpecialFolderLocation(
- Cardinal(lstSpecialFolder.Items.Objects[lstSpecialFolder.ItemIndex]))
- end;
-
- end.
-